from rest_framework import permissions


# 自定义权限类，允许匿名用户创建和查看任务
class TaskPermission(permissions.BasePermission):
    def has_permission(self, request, view):
        # 允许所有用户列出和创建任务
        if view.action in ['list', 'create', 'retrieve']:
            return True
        # 其他操作需要认证
        return request.user and request.user.is_authenticated

    def has_object_permission(self, request, view, obj):
        # 允许所有用户查看任务
        if view.action == 'retrieve':
            return True
        # 如果任务没有创建者，任何人都可以编辑
        if obj.created_by is None:
            return True
        # 只有创建者可以编辑或删除
        return obj.created_by == request.user